package com.link.base.base.project.model;

import com.link.base.base.accnt.DmpField;
import com.link.base.base.product.model.ComputeQuotePartsCost;
import com.link.base.base.product.model.PcdData;
import com.link.base.base.product.model.QuotePartsCost;
import com.link.core.basic.model.BasicModel;

import java.math.BigDecimal;
import java.util.List;

/**
 * 项目
 *
 * @author 阳晓琳
 * @date 2020-09-21 16:36:57
 */
public class Project extends BasicModel {

    /**
    *  项目号
    */
    private String projectCode;
    /**
    *  零件类型
    */
    private Long compType;
    /**
    *  车型登记ID
    */
    private Long clueId;
    /**
    *  项目阶段
    */
    private String projectStage;
    /**
    *  是否重点项目
    */
    private String impFlag;
    /**
    *  车型
    */
    private String vehicleType;
    /**
    *  车型等级
    */
    private String vehicleLevel;
    /**
    *  客户生产地
    */
    private String acctProduce;
    /**
    *  生产工厂
    */
    private String prodFactoty;
    /**
    *  是否分摊
    */
    private String splitFlag;
    /**
    *  年产量(台)
    */
    private BigDecimal yearOutput;
    /**
    *  SOP节点
    */
    private String sopNode;
    /**
    *  生命周期(年)
    */
    private BigDecimal lifecycle;
    /**
    *  预计定点月份
    */
    private String planFixMonth;
    /**
    *  实际定点月份
    */
    private String actFixMonth;
    /**
    *  是否评审
    */
    private String apprFlag;
    /**
    *  评审结果
    */
    private String apprResult;
    /**
    *  是否定点
    */
    private String winFlag;
    /**
    *  失标原因
    */
    private String loseReason;
    /**
    *  备注
    */
    private String comments;
    /**
    *  审批状态
    */
    private String approvalStatus;
    /**
    *  客户目标价
    */
    private BigDecimal acctTargetPrice;
    /**
    *  目标价类型
    */
    private String targetPriceType;

    private String projectStatus;
    /**
     *  生产工厂ID
     */
    private Long prodFactotyId;

    private String clueCode;
    private String acctName;
    /**
     * 客户分类
     */
    @DmpField(fieldName = "type")
    private String acctType;
    private String mainEngine;
    /**
     * 业务经理ID
     */
    private Long salemanId;
    /**
     * 业务经理
     */
    private String saleman;
    private Long acctId;
    private String acctLevel;

    /**
     *  零件类型
     */
    private String comptypeName;
    /**
     *  年降
     */
    private String annualDecline;
    /**
     * 生命周期总产量
     */
    private BigDecimal totalLifecycleOutput;
    /**
     *  项目承接单生成日期
     */
    private String acceptanceCreated;
    /**
     *  失标原因
     */
    private String lostTheReason;

    /**
     *  零件类型名称
     */
    private String partsTypeName;

    /**
     *  项目均车毛利率
     */
    private BigDecimal avgGrossing;

    /**
     *  项目成本总价
     */
    private BigDecimal totalProjectCost;
    /**
     *  成本均车总价
     */
    private BigDecimal totalCarAmount;
    /**
     *  项目报价总金额
     */
    private BigDecimal totalQuotationAmount;
    /**
     *  项目均车报价
     */
    private BigDecimal avgQuotaCost;
    /**
     *  项目毛利率
     */
    private BigDecimal grossing;


    /**
     *  业务经理
     */
    private String busManageName;

    private String year;
    private BigDecimal annualSales;

    private List<QuoteRound> quoteRoundList;

    private List<QuotePartsCost> quotePartsCostList;

    private List<ComputeQuotePartsCost> computeQuotePartsCostList;

    private List<PcdData> pcdDataList;

    private List<ProjectCarOutput> outputList;

    /**
     *  客户编码
     */
    private String acctCode;

    /**
     * 业务经理id（从客户带出）
     */
    private Long salesmanId;
    /**
     * 业务经理名称(客户带出)
     */
    private String busManagerName;
    /**
     * 区域经理名称
     */
    private String areamanName;
    /**
     *  终端主机厂ID
     */
    private Long engineeId;

    private String name;
    /**
     * 用于存放子客户
     */
    private List<Project> children;

    private BigDecimal mouldCostSum;

    /**
     * 对外报价是否已计算
     */
    private String isQuoteCompute;

    public String getIsQuoteCompute() {
        return isQuoteCompute;
    }

    public void setIsQuoteCompute(String isQuoteCompute) {
        this.isQuoteCompute = isQuoteCompute;
    }

    public BigDecimal getMouldCostSum() {
        return mouldCostSum;
    }

    public void setMouldCostSum(BigDecimal mouldCostSum) {
        this.mouldCostSum = mouldCostSum;
    }

    public List<Project> getChildren() {
        return children;
    }

    public void setChildren(List<Project> children) {
        this.children = children;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getEngineeId() {
        return engineeId;
    }

    public void setEngineeId(Long engineeId) {
        this.engineeId = engineeId;
    }

    public String getAreamanName() {
        return areamanName;
    }

    public void setAreamanName(String areamanName) {
        this.areamanName = areamanName;
    }

    public String getBusManagerName() {
        return busManagerName;
    }

    public void setBusManagerName(String busManagerName) {
        this.busManagerName = busManagerName;
    }

    public Long getSalesmanId() {
        return salesmanId;
    }

    public void setSalesmanId(Long salesmanId) {
        this.salesmanId = salesmanId;
    }

    public String getAcctCode() {
        return acctCode;
    }

    public void setAcctCode(String acctCode) {
        this.acctCode = acctCode;
    }

    public List<QuoteRound> getQuoteRoundList() {
        return quoteRoundList;
    }

    public void setQuoteRoundList(List<QuoteRound> quoteRoundList) {
        this.quoteRoundList = quoteRoundList;
    }

    public List<ProjectCarOutput> getOutputList() {
        return outputList;
    }

    public void setOutputList(List<ProjectCarOutput> outputList) {
        this.outputList = outputList;
    }

    public String getYear() {
        return year;
    }

    public void setYear(String year) {
        this.year = year;
    }

    public BigDecimal getAnnualSales() {
        return annualSales;
    }

    public void setAnnualSales(BigDecimal annualSales) {
        this.annualSales = annualSales;
    }

    public String getBusManageName() {
        return busManageName;
    }

    public void setBusManageName(String busManageName) {
        this.busManageName = busManageName;
    }

    public String getPartsTypeName() {
        return partsTypeName;
    }

    public void setPartsTypeName(String partsTypeName) {
        this.partsTypeName = partsTypeName;
    }

    public String getLostTheReason() {
        return lostTheReason;
    }

    public void setLostTheReason(String lostTheReason) {
        this.lostTheReason = lostTheReason;
    }

    public String getAcceptanceCreated() {
        return acceptanceCreated;
    }

    public void setAcceptanceCreated(String acceptanceCreated) {
        this.acceptanceCreated = acceptanceCreated;
    }

    public BigDecimal getTotalLifecycleOutput() {
        return totalLifecycleOutput;
    }

    public void setTotalLifecycleOutput(BigDecimal totalLifecycleOutput) {
        this.totalLifecycleOutput = totalLifecycleOutput;
    }

    public String getAnnualDecline() {
        return annualDecline;
    }

    public void setAnnualDecline(String annualDecline) {
        this.annualDecline = annualDecline;
    }

    public String getComptypeName() {
        return comptypeName;
    }

    public void setComptypeName(String comptypeName) {
        this.comptypeName = comptypeName;
    }

    public String getAcctType() {
        return acctType;
    }

    public void setAcctType(String acctType) {
        this.acctType = acctType;
    }

    public String getAcctLevel() {
        return acctLevel;
    }

    public void setAcctLevel(String acctLevel) {
        this.acctLevel = acctLevel;
    }

    public Long getAcctId() {
        return acctId;
    }

    public void setAcctId(Long acctId) {
        this.acctId = acctId;
    }

    public String getClueCode() {
        return clueCode;
    }

    public void setClueCode(String clueCode) {
        this.clueCode = clueCode;
    }

    public String getAcctName() {
        return acctName;
    }

    public void setAcctName(String acctName) {
        this.acctName = acctName;
    }

    public String getMainEngine() {
        return mainEngine;
    }

    public void setMainEngine(String mainEngine) {
        this.mainEngine = mainEngine;
    }

    public Long getSalemanId() {
        return salemanId;
    }

    public void setSalemanId(Long salemanId) {
        this.salemanId = salemanId;
    }

    public String getSaleman() {
        return saleman;
    }

    public void setSaleman(String saleman) {
        this.saleman = saleman;
    }

    public String getProjectStatus() {
        return projectStatus;
    }

    public void setProjectStatus(String projectStatus) {
        this.projectStatus = projectStatus;
    }

    public String getProjectCode() {
        return projectCode;
    }

    public void setProjectCode(String projectCode) {
        this.projectCode = projectCode;
    }

    public Long getCompType() {
        return compType;
    }

    public void setCompType(Long compType) {
        this.compType = compType;
    }

    public Long getClueId() {
        return clueId;
    }

    public void setClueId(Long clueId) {
        this.clueId = clueId;
    }

    public String getProjectStage() {
        return projectStage;
    }

    public void setProjectStage(String projectStage) {
        this.projectStage = projectStage;
    }

    public String getImpFlag() {
        return impFlag;
    }

    public void setImpFlag(String impFlag) {
        this.impFlag = impFlag;
    }

    public String getVehicleType() {
        return vehicleType;
    }

    public void setVehicleType(String vehicleType) {
        this.vehicleType = vehicleType;
    }

    public String getVehicleLevel() {
        return vehicleLevel;
    }

    public void setVehicleLevel(String vehicleLevel) {
        this.vehicleLevel = vehicleLevel;
    }

    public String getAcctProduce() {
        return acctProduce;
    }

    public void setAcctProduce(String acctProduce) {
        this.acctProduce = acctProduce;
    }

    public String getProdFactoty() {
        return prodFactoty;
    }

    public void setProdFactoty(String prodFactoty) {
        this.prodFactoty = prodFactoty;
    }

    public String getSplitFlag() {
        return splitFlag;
    }

    public void setSplitFlag(String splitFlag) {
        this.splitFlag = splitFlag;
    }

    public BigDecimal getYearOutput() {
        return yearOutput;
    }

    public void setYearOutput(BigDecimal yearOutput) {
        this.yearOutput = yearOutput;
    }

    public String getSopNode() {
        return sopNode;
    }

    public void setSopNode(String sopNode) {
        this.sopNode = sopNode;
    }

    public BigDecimal getLifecycle() {
        return lifecycle;
    }

    public void setLifecycle(BigDecimal lifecycle) {
        this.lifecycle = lifecycle;
    }

    public String getPlanFixMonth() {
        return planFixMonth;
    }

    public void setPlanFixMonth(String planFixMonth) {
        this.planFixMonth = planFixMonth;
    }

    public String getActFixMonth() {
        return actFixMonth;
    }

    public void setActFixMonth(String actFixMonth) {
        this.actFixMonth = actFixMonth;
    }

    public String getApprFlag() {
        return apprFlag;
    }

    public void setApprFlag(String apprFlag) {
        this.apprFlag = apprFlag;
    }

    public String getApprResult() {
        return apprResult;
    }

    public void setApprResult(String apprResult) {
        this.apprResult = apprResult;
    }

    public String getWinFlag() {
        return winFlag;
    }

    public void setWinFlag(String winFlag) {
        this.winFlag = winFlag;
    }

    public String getLoseReason() {
        return loseReason;
    }

    public void setLoseReason(String loseReason) {
        this.loseReason = loseReason;
    }

    public String getComments() {
        return comments;
    }

    public void setComments(String comments) {
        this.comments = comments;
    }

    public String getApprovalStatus() {
        return approvalStatus;
    }

    public void setApprovalStatus(String approvalStatus) {
        this.approvalStatus = approvalStatus;
    }

    public BigDecimal getAcctTargetPrice() {
        return acctTargetPrice;
    }

    public void setAcctTargetPrice(BigDecimal acctTargetPrice) {
        this.acctTargetPrice = acctTargetPrice;
    }

    public String getTargetPriceType() {
        return targetPriceType;
    }

    public void setTargetPriceType(String targetPriceType) {
        this.targetPriceType = targetPriceType;
    }

    public Long getProdFactotyId() {
        return prodFactotyId;
    }

    public void setProdFactotyId(Long prodFactotyId) {
        this.prodFactotyId = prodFactotyId;
    }

    public BigDecimal getAvgGrossing() {
        return avgGrossing;
    }

    public void setAvgGrossing(BigDecimal avgGrossing) {
        this.avgGrossing = avgGrossing;
    }

    public BigDecimal getTotalProjectCost() {
        return totalProjectCost;
    }

    public void setTotalProjectCost(BigDecimal totalProjectCost) {
        this.totalProjectCost = totalProjectCost;
    }

    public BigDecimal getTotalCarAmount() {
        return totalCarAmount;
    }

    public void setTotalCarAmount(BigDecimal totalCarAmount) {
        this.totalCarAmount = totalCarAmount;
    }

    public BigDecimal getTotalQuotationAmount() {
        return totalQuotationAmount;
    }

    public void setTotalQuotationAmount(BigDecimal totalQuotationAmount) {
        this.totalQuotationAmount = totalQuotationAmount;
    }

    public BigDecimal getAvgQuotaCost() {
        return avgQuotaCost;
    }

    public void setAvgQuotaCost(BigDecimal avgQuotaCost) {
        this.avgQuotaCost = avgQuotaCost;
    }

    public BigDecimal getGrossing() {
        return grossing;
    }

    public void setGrossing(BigDecimal grossing) {
        this.grossing = grossing;
    }

    private String acctAddr;
    private String acctMail;
    private String acctFax;
    private String acctPayType;
    private String clearingForm;

    public String getAcctAddr() {
        return acctAddr;
    }

    public void setAcctAddr(String acctAddr) {
        this.acctAddr = acctAddr;
    }

    public String getAcctMail() {
        return acctMail;
    }

    public void setAcctMail(String acctMail) {
        this.acctMail = acctMail;
    }

    public String getAcctFax() {
        return acctFax;
    }

    public void setAcctFax(String acctFax) {
        this.acctFax = acctFax;
    }

    public String getAcctPayType() {
        return acctPayType;
    }

    public void setAcctPayType(String acctPayType) {
        this.acctPayType = acctPayType;
    }

    public String getClearingForm() {
        return clearingForm;
    }

    public void setClearingForm(String clearingForm) {
        this.clearingForm = clearingForm;
    }

    public List<QuotePartsCost> getQuotePartsCostList() {
        return quotePartsCostList;
    }

    public void setQuotePartsCostList(List<QuotePartsCost> quotePartsCostList) {
        this.quotePartsCostList = quotePartsCostList;
    }

    public List<ComputeQuotePartsCost> getComputeQuotePartsCostList() {
        return computeQuotePartsCostList;
    }

    public void setComputeQuotePartsCostList(List<ComputeQuotePartsCost> computeQuotePartsCostList) {
        this.computeQuotePartsCostList = computeQuotePartsCostList;
    }

    public List<PcdData> getPcdDataList() {
        return pcdDataList;
    }

    public void setPcdDataList(List<PcdData> pcdDataList) {
        this.pcdDataList = pcdDataList;
    }
}
